home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 023 - Big U Macroworks.dsk / CAT.FIXER.bas < prev    next >
BASIC Source File  |  2019-02-16  |  6KB  |  91 lines

  1. 1 ID =  PEEK(49048): FOR I = 7 TO 2  STEP  -1: IF ID > = 2 ^I  THEN ID = ID -2 ^I
  2. 2  NEXT : REM  :IF ID < 2 THEN NOT 80
  3. 20  ONERR  GOTO 6000
  4. 40  HOME : PRINT : GOSUB 9500
  5. 50  PRINT  CHR$(21): GOSUB 2000: REM  NORMALIZE
  6. 125 OPT = 1:MAX = 4:VS = 7
  7. 130 X = 0: GOSUB 9000: REM    SET UP SCREEN
  8. 135  IF OO  THEN  VTAB 7 +OO: HTAB 18: PRINT "<-->"
  9. 140  GOSUB 8000: REM  WAIT FOR KEY
  10. 145  IF OO  THEN 170
  11. 150  IF OP <3  THEN OO = 0: GOTO 170
  12. 160 OO = OP:OP = 1:MA = 3:VS = 18: GOSUB 8000
  13. 165  REM <CTRL-J><CTRL-J>
  14. 170  VTAB 13: HTAB 3: INVERSE : PRINT " PRESS 'D' FOR DEMO OR PRESS ESCAPE ": NORMAL 
  15. 180  GOSUB 8800
  16. 190  IF X = 27  THEN  VTAB 13: HTAB 3: INVERSE : PRINT "USE CURSOR KEYS AND RETURN TO SELECT": NORMAL : IF OO  THEN  VTAB VS +OP: HTAB 18: PRINT "    ":OP = OO:OO = 0:VS = 7:MA = 4
  17. 191  IF X = 27  THEN 140
  18. 200  IF X < >68  THEN  PRINT BP$;: GOTO 180
  19. 204  REM <CTRL-J><CTRL-J>
  20. 205 TX = 0: IF X = 85  THEN TX = 1: GOTO 290
  21. 207  VTAB 13: HTAB 3: INVERSE : PRINT " SELECT 'F'ORTY OR 'E'IGHTY COLUMNS ": NORMAL 
  22. 220  GOSUB 8800: IF X = 27  THEN 170
  23. 222  IF   NOT (X = 69  OR X = 70)  THEN  PRINT BP$;: GOTO 220
  24. 225 SC = 0: IF X = 69  AND ID > = 2  THEN SC = 1
  25. 230  REM <CTRL-J><CTRL-J>
  26. 240  VTAB 13: HTAB 3: INVERSE : PRINT " SELECT 'C'AT OR 'K'ATALOG COMMAND ": NORMAL 
  27. 245  IF Y = 67  THEN  VTAB 13: HTAB 21: INVERSE : PRINT "C"
  28. 250  GOSUB 8800: IF X = 27  THEN 207
  29. 252  IF   NOT (X = 67  OR X = Y)  THEN  PRINT BP$;: GOTO 250
  30. 255  IF Y = 67  THEN Y = 75: PRINT BP$;: NORMAL : VTAB 12: HTAB 21: PRINT " ": HTAB 21: PRINT "K": FOR I = 0 TO 400: NEXT : VTAB 12: HTAB 21: PRINT "_": HTAB 21: INVERSE : PRINT "K": NORMAL : GOTO 250
  31. 260 CC$ = "CAT": IF X = 75  THEN CC$ = "CATALOG": REM <CTRL-J><CTRL-J>
  32. 290 XX = OP: IF OO  THEN XX = OO
  33. 300  ON XX GOSUB 2000,2500,3000,3500
  34. 310  IF TX  THEN 4000: REM  UPDATE, NOT DEMO
  35. 380  IF SC  THEN  PRINT D$"PR#3"
  36. 390  HOME : PRINT CC$" COMMAND ": POKE 34,2: PRINT D$;CC$
  37. 400  HTAB 12: PRINT "- PRESS ANY KEY -": GOSUB 8800: TEXT : PRINT  CHR$(21): GOTO 130
  38. 1900  STOP 
  39. 1990  REM  <CTRL-M><CTRL-M>NORMALIZE CAT/CATALOG COMMANDS<CTRL-J>
  40. 2000  FOR I = 45110 TO 45118: POKE I,NN(I -45110): NEXT : POKE C1,54: POKE C1 +1,176: POKE C2,58: POKE C2 +1,176: POKE C4,157: POKE C4 +1,159
  41. 2008  RETURN : REM  <CTRL-J><CTRL-J>
  42. 2490  REM <CTRL-M><CTRL-M>SMART CAT / AUTO 80 CATALOG<CTRL-J>
  43. 2500  FOR I = 45110 TO 45116: POKE I,SA(I -45110): NEXT : POKE C1,57: POKE C2,54: RETURN : REM   <CTRL-J><CTRL-J>
  44. 3000  GOSUB 2500: POKE C1,94: POKE C1 +1,3: POKE C4,99: POKE C4 +1,3: POKE S +1,WID(OP): RETURN : REM  POINT TO S
  45. 3500  GOSUB 2000: POKE C4,99: POKE C4 +1,3: POKE 45111,WID(OP): RETURN : REM     CATSIZE
  46. 5990  REM <CTRL-M><CTRL-M>ERROR HANDLING<CTRL-J><CTRL-J>
  47. 6000 ER =  PEEK(222):EL =  PEEK(219) *256 + PEEK(218)
  48. 6010  IF ER = 8  OR ER = 3  THEN  PRINT BP$: PRINT "DISK DRIVE ERROR": GOSUB 8800: RESUME 
  49. 6100  POKE 216,0: RESUME 
  50. 7990  REM <CTRL-M><CTRL-M>SUBROUTINES<CTRL-M><CTRL-M>
  51. 8000  VTAB VS +OPT: HTAB 18: PRINT "<-->": FOR I = 0 TO 50: GOSUB 8500: NEXT 
  52. 8010  VTAB VS +OPT: HTAB 18: PRINT "    ": FOR I = 0 TO 30: GOSUB 8500: NEXT : GOTO 8000
  53. 8500 X =  PEEK(KP): IF X <128  THEN  RETURN 
  54. 8505  POKE KR,0:X =  PEEK(KP)
  55. 8510  IF X >95  THEN X = X -32
  56. 8520  IF X = 21  OR X = 10  THEN X = OPT:OPT = OPT +1: GOTO 8700
  57. 8530  IF X = 8  OR X = 11  THEN X = OPT:OPT = OPT -1: GOTO 8700
  58. 8540  IF X = 27  AND   NOT OO  THEN  TEXT : HOME : PRINT : PRINT "TYPE "Q$"RUN"Q$" TO RESTART.": END 
  59. 8545  IF X = 27  THEN 190
  60. 8550  IF X < >13  THEN  PRINT BP$;: RETURN 
  61. 8650  VTAB VS +OP: HTAB 18: PRINT "<-->": POP : RETURN 
  62. 8700  VTAB VS +X: HTAB 18: PRINT "    ": IF OPT <1  OR OPT >MAX  THEN OPT =  ABS(OPT -MAX)
  63. 8710  POP : GOTO 8000
  64. 8799  REM <CTRL-M><CTRL-M>WAIT FOR A KEYPRESS<CTRL-J>
  65. 8800  POKE KR,0: WAIT KP,128: POKE KR,0:X =  PEEK(KP): IF X >95  THEN X = X -32
  66. 8810  RETURN 
  67. 8999  REM <CTRL-M><CTRL-M>TITLE SCREEN<CTRL-M><CTRL-M>
  68. 9000  HOME :J = 12: FOR I = 3 TO 22: VTAB I: HTAB 1: PRINT " ";: HTAB 40: PRINT " ";: NEXT : FOR I = 1 TO 20: VTAB 2: HTAB 21 -I: PRINT  LEFT$(A$,I);: HTAB 21: PRINT  RIGHT$(A$,I);: VTAB 23: HTAB 21 -I: PRINT  LEFT$(N$,I);: HTAB 21: IF I <20  THEN  PRINT  RIGHT$(N$,I);
  69. 9010 X = 1 -X: IF   NOT X  THEN  NEXT : GOTO 9040
  70. 9020 J = J +1: REM        FORI=14TO23
  71. 9030  VTAB J: HTAB 1: PRINT "!";: HTAB 40: PRINT "!";: VTAB 25 -J: HTAB 1: PRINT "!";: HTAB 40: PRINT "!";: NEXT 
  72. 9040  VTAB 23: HTAB 20: PRINT  MID$ (N$,20,20);: POKE 1911,186: NORMAL : VTAB 4: HTAB 12: PRINT "CAT.FIXER CHOICES": PRINT : HTAB 3
  73. 9042  PRINT "CAT COMMMAND        CATALOG COMMAND": HTAB 3: PRINT "------------        ---------------": HTAB 3: PRINT "NORMAL CAT          NORMAL CATALOG": HTAB 3: PRINT "SMART 40/80         AUTO 80-COLUMN": HTAB 3
  74. 9045  PRINT "MULTIPLE FILES      AUTO 80-COLUMN": HTAB 3: PRINT "MULTIPLE FILES      NORMAL CATALOG": VTAB 13: HTAB 3: PRINT "USE CURSOR KEYS AND RETURN TO SELECT"
  75. 9050  VTAB 15: HTAB 6: PRINT "OPTIONS FOR MULTIPLE FILES CAT": PRINT : HTAB 3: PRINT "40-COLUMN SCREEN    80-COLUMN SCREEN": HTAB 3
  76. 9060  PRINT "----------------    ----------------": HTAB 3: PRINT "NORMAL CAT          TWO FILES/LINE": HTAB 3: PRINT "TWO FILES/LINE      FOUR FILES/LINE": HTAB 3: PRINT "COMPLETE MESS       FIVE FILES/LINE";: CALL INVERT: RETURN 
  77. 9500  FOR I = 0 TO 6: READ SA(I): NEXT : DATA   32,0,195,166,33,202,142
  78. 9600  FOR I = 0 TO 8: READ NN(I): NEXT : DATA   169,39,208,2,169,79,141,182,188
  79. 9700 INVERT = 20480:KP = 49152:KR = 49168:CL =  -868:CS =  -958:BP$ =  CHR$(7):D$ =  CHR$(4):Q$ =  CHR$(34)
  80. 9705  FOR I = 0 TO 97: READ A: POKE 20480 +I,A: NEXT 
  81. 9707  DATA 160,223,173,152,191,48,2,160,160,162,39,189,128,4,41,63,157,128,4,152,157,0,4,202,16,241,162,39,189,80,7,41,63,157,80,7,152,157,208,6,202,16,241,169,161,141,208
  82. 9708  DATA 6,141,247,6,162,37,189,40,6,41,63,157,40,6,152,157,168,5,202,224,1,208,239,162,1,138,32,36,252,160,0,177,40,41,63,145,40,160,39,177,40,41,63,145,40,232,224,23,208,231,96
  83. 9710  TEXT :A$ = ":-:-:-:- BEAGLE BROS' CAT.FIXER -:-:-:-:":N$ = ":-:-:-:- (C) 1985, RANDY BRANDT -:-:-:-:"
  84. 9720 C1 = 47343:C2 = 47395: REM    CAT & CATALOG JUMPS
  85. 9730 Y = 67: REM    BOTH 'C' AT FIRST
  86. 9740 WI(1) = 39:WI(2) = 19:WI(3) = 15
  87. 9790  REM  <CTRL-J><CTRL-J>
  88. 9800 C4 = 45195:S = 862: REM    PRINT LINE AND START OF PATCH
  89. 9810  FOR I = S TO S +23: READ J: POKE I,J: NEXT 
  90. 9860  DATA 162,39,76,60,176,162,0,189,1,2,32,173,159,232,236,182,188,144,244,169,160,76,237,253
  91. 9900  RETURN